multivariate_distribution Derived Type

type, public :: multivariate_distribution

Defines a multivariate probability distribution.


Type-Bound Procedures

procedure, public :: log_pdf => mvd_log_pdf

Computes the log density; custom laws should override the PDF fallback.

  • private pure function mvd_log_pdf(this, x) result(rst)

    Compatibility log-density fallback for custom multivariate distributions. Override this binding to compute log densities without PDF underflow.

    Arguments

    Type IntentOptional Attributes Name
    class(multivariate_distribution), intent(in) :: this

    Multivariate distribution whose PDF is evaluated.

    real(kind=real64), intent(in), dimension(:) :: x

    Multivariate evaluation point.

    Return Value real(kind=real64)

    Log PDF; zero density gives -infinity, negative/NaN density gives NaN.

procedure(multivariate_distribution_function), public, deferred, pass :: pdf

Computes the probability density function.

  • pure function multivariate_distribution_function(this, x) result(rst) Prototype

    Defines an interface for a multivariate probability distribution function.

    Arguments

    Type IntentOptional Attributes Name
    class(multivariate_distribution), intent(in) :: this

    The distribution object.

    real(kind=real64), intent(in), dimension(:) :: x

    The values at which to evaluate the function.

    Return Value real(kind=real64)

    The value of the function.